The present invention relates generally to communications systems and, in particular, to techniques which provide for synchronizing databases, e.g., a database containing a phonebook stored in a subscriber identity module (SIM) of a mobile station used in a radiocommunication system, e.g., a cellular or satellite radiocommunication system.
The cellular telephone industry has made phenomenal strides in commercial operations in the United States as well as the rest of the world. Growth in major metropolitan areas has far exceeded expectations and is rapidly outstripping system capacity. If this trend continues, the effects of this industry's growth will soon reach even the smallest markets. Innovative solutions are required to meet these increasing capacity needs as well as maintain high quality service and avoid rising prices.
One recognized trend is the convergence of the so-called information industry, as symbolized by the evolution of the personal computer (PC), and the so-called communications industry, as symbolized by the evolution of the mobile phone. Both types of devices are characterized by rapidly increasing performance (hardware) and by increased application (software) capabilities. In the near future, it is likely that mobile phones will communicate more directly with other information devices, such as the PC, to exchange information. Many subscribers of wireless services also own personal computers and, as each type of device gets more sophisticated in its data handling capability, may wish to exchange data therebetween, e.g., between databases (such as phone books), stored in each device.
Consider the example illustrated in FIG. 1. Therein, a PC 10 and a mobile phone 20 are linked together via communication link 30. It will be appreciated by those skilled in the art that while a PC and mobile phone are used as examples of two devices between which database synchronization may be performed that the present invention is not limited to these two types of devices and may, in fact be applied to database synchronization between any two types of devices e.g., electronic organizers, pagers, etc. The PC 10 includes a database 40, e.g., containing phone records, while the mobile phone 20 includes a corresponding database stored on its subscriber identity module (SIM) card 50. As will be appreciated by those skilled in the radiocommunication arts, the SIM card is a removable smart card that was created for the GSM radiocommunication standard as a mechanism to conveniently group and store information elements related to the mobile subscriber in a removable manner, which card is insertably removable from mobile phones. The term “synchronize” as it is used herein to refer to database operations associated with two or more devices means changing the contents of one database so that it mirrors the contents of the other database.
Conventionally, to synchronize the database 40 and the database stored on SIM card 50, it was necessary to individually compare each record in each database. For example, the database of phonebook records stored in SIM card 50 could be transmitted to PC 10 via link 30. Then, the records in each database could be compared and updated such that the two databases mirrored one another. Changes to the database stored in the SIM card 50, e.g., associated with records found in the database 40 but not found in the version of the database transmitted from the mobile phone 20 to the PC 10, could then be relayed back to the mobile phone 20 to update the SIM card's phonebook. This synchronization process is complicated and time consuming.
To address this problem, a change log can be added to the devices as shown in FIG. 2. The change log contains information regarding records which have been operated upon in either database subsequent to synchronization therebetween. The change log can be implemented, for example, in a portion of memory which records for each change an event (e.g., add, delete or modify), the identity of the database record for which the event occurred and a timestamp indicating when the event took place. For example, if a phone record is added to database 40 in PC 10 subsequent to it being synchronized with mobile phone 20, then an indication of such will be found in change log 200. Likewise, if the subscriber associated with mobile phone 20 (and SIM card 50) deletes a record in his or her phonebook, then this change will be reflected in change log 205. Using change logs 200 and 205 is advantageous during synchronization since only those records which have been modified, added or deleted (as recorded in the change log) since the last synchronization update need to be transmitted between the devices. Thus, the synchronization process may be performed more rapidly.
Unfortunately, although this improves the synchronization process, adding the change logs introduces another problem. Since memory on the SIM card 50 is limited, it is likely that the change log will be stored in another memory device in the mobile phone 20, e.g., local RAM (not shown), rather than on the SIM card 50 itself, as is the database. This may be problematic when the SIM card 50 is transferred to another mobile phone as depicted in FIG. 3. In this example, consider that SIM card 50 has been transferred from mobile phone 20 to mobile phone 300, e.g., the subscriber of mobile phone 20 has borrowed mobile phone 300. Then, the subscriber makes a change to his or her phonebook while using mobile phone 300. This change is reflected in change log 305, but not in change log 210. After re-installing SIM card 50 into mobile phone 20, the subscriber initiates the synchronization process, however since change log 210 does not include the change or changes made to the database in the SIM card 50, the PC cannot be updated with those changes.
Accordingly, it would be desirable to provide techniques and apparatuses which enable the usage of change logs for synchronizing databases, but also accommodate the portability of SIM cards and the like.